package com.wjl.shop.service;

import com.wjl.shop.entity.StockOrder;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 备货订单表(StockOrder)表服务接口
 *
 * @author makejava
 * @since 2021-10-06 14:43:21
 */
public interface StockOrderService {

    /**
     * 通过ID查询单条数据
     *
     * @param stockOrder 主键
     * @return 实例对象
     */
    Map<String,Object> queryByOrder(StockOrder stockOrder);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<StockOrder> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param stockOrder 实例对象
     * @return 实例对象
     */
    StockOrder insert(StockOrder stockOrder);

    /**
     * 修改数据
     *
     * @param stockOrder 实例对象
     * @return 实例对象
     */
    Map<String,Object> update(StockOrder stockOrder);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);
    /**
     * 查询待处理列表
     * @param stockOrder
     * @return map
     * */
    Map<String,Object> selectOrder(StockOrder stockOrder);

    /**
     * 通过编码批量查询
     * @param codes
     * @return
     */
    Map<String,Object> sumOrdersByCodes(List<String> codes);
    /**
     * 上传附件
     * */
    Map<String,Object> FileUpdate(StockOrder stockOrder,MultipartFile file) throws IOException;

    /**
     *新增订单
     * @param request
     * @return 是否成功
     */
    Map<String,Object> addOrder(HttpServletRequest request);

    /**
     * 保存订单
     * @param request
     * @return
     */
    Map<String,Object> saveOrder(HttpServletRequest request);

    /**
     * 审核通过
     * @param list
     * @return
     */
    Map<String,Object> updateInfo(List<String> list,StockOrder stockOrder);
    /**
     * 待审核列表查询
     * @param stockOrder
     * @return
     */
    Map<String,Object> serchInfo(StockOrder stockOrder);

    /**
     * 复审通过
     */
    Map<String,Object> review(StockOrder stockOrder);

    /**
     * 审核不通过
     * @param stockOrder
     * @return
     */
    Map<String,Object> updatenot(StockOrder stockOrder);
    /**
     * 提交订单
     * @param list
     * @return 更改条数
     * */
    Map<String,Object> commitOrder(List<String> list);
    /**
     * 取消订单
     * */
    Map<String,Object> canCel(List<String> list);
    /**
     * 修改订单
     * */
    Map<String,Object> modifyOrder(StockOrder stockOrder);
}
